/*
 * Title: 谜题（Puzzle）
 * Author: Yuanshun L
 * Created: 29-Sep-2021
 */
#include<stdio.h>
#include<string.h>
#define maxn 101
#define width 5
void input_matrix(char a[width+1][width+1],int n){
    for(int i=0;i<n;i++){
        printf("%s\n",a[i]);
    }
}
int main() {
    char matrix[width+1][width+1]={"TRGSJ","XDOKI","M VLN","WPABE","UQHCF"};
    char cmd[maxn];
    int flag = 0;
    scanf("%s",cmd);
    // 检查输入格式是否正确
    for(int i=0;i<strlen(cmd)-1;i++){
        if(cmd[i]!='A' && cmd[i]!='B' && cmd[i]!='R' && cmd[i]!='L'){
            flag = 1;
            break;
        }
    }
    if(cmd[strlen(cmd)-1]!='0')
        flag=1;


    if(flag)
        printf("This puzzle no final configuration.\n");
    else{
        int x=-1,y=-1; // 空格的位置(x,y)
        for(int i=0;i<width;i++)
            for(int j=0;j<width;j++)
                if(matrix[i][j]==' '){
                    x = i;y = j;break;
                }

        for(int k=0;k<strlen(cmd)-1;k++){
            if(cmd[k]=='L'){
                if(y-1>=0){
                    matrix[x][y] = matrix[x][y-1];
                    matrix[x][y-1] = ' ';
                    y--;
                }
            }
            else if(cmd[k]=='R'){
                if(y+1<width){
                    matrix[x][y] = matrix[x][y+1];
                    matrix[x][y+1] = ' ';
                    y++;
                }
            }
            else if(cmd[k]=='B'){
                if(x+1<width){
                    matrix[x][y] = matrix[x+1][y];
                    matrix[x+1][y] = ' ';
                    x++;
                }
            }
            else{
                if(x-1>=0){
                    matrix[x][y] = matrix[x-1][y];
                    matrix[x-1][y] = ' ';
                    x--;
                }
            }
        }
        input_matrix(matrix,5);
    }

    return 0;
}
